const express = require('express')
const router = express.Router()

// 导入用户路由处理函数模块
const userHandler = require('../router_handler/user')

// 1. 导入验证表单数据的中间件
const expressJoi = require('@escook/express-joi')
// 2. 导入需要的验证规则对象
const { reg_login_schema } = require('../schema/user')

/**
 *邮箱注册接口测试
 */

//发送验证码到指定邮箱
router.get('/getEmailCode', userHandler.getEmailCode)

//验证码邮箱验证码
router.post('/loginByEmail_Code', userHandler.loginByEmail_Code)

// 注册新用户
// 3. 在注册新用户的路由中，声明局部中间件，对当前请求中携带的数据进行验证
// 3.1 数据验证通过后，会把这次请求流转给后面的路由处理函数
// 3.2 数据验证失败后，终止后续代码的执行，并抛出一个全局的 Error 错误，进入全局错误级别中间件中进行处理
router.post('/register', expressJoi(reg_login_schema), userHandler.regUser)

// 登录的路由
router.post('/login', expressJoi(reg_login_schema), userHandler.login)

// 定义获取验证码路由
router.get('/getCaptcha', userHandler.getCaptcha)

//定义验证码验证路由
// router.get('/verifyCaptcha', userHandler.verifyCaptcha)

/*
 *以下是uniapp小程序实现的接口功能
 */
// 定义邮箱登录路由
router.post('/loginByEmail', userHandler.loginByEmail_Pwd)

// 注册+邮箱版
router.post('/registerAddEmail', userHandler.registerAddEmail)

//根据cate_id查找到cates的name
router.get('/cateNameLeft', userHandler.cateName)

//sql的模糊搜索
router.post('/ArtSearch', userHandler.ArtSearch)

//轮播图
router.get('/shopSwiper', userHandler.getCarousel)

//根据Id获取文章数据
router.get('/:Id', userHandler.getArticleById)

//获取文章分类列表路由
router.get('/cates/getList', userHandler.getArticleCates)

module.exports = router
